科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件在.NET环境下绘制模糊数学中隶属函数分布图

在.NET环境下绘制模糊数学中隶属函数分布图

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文给出了有个在.NET环境下绘制模糊数学中隶属函数分布图的实例代码,并对其作了简单讲解,大家可以学习一下。

作者:常青藤 来源:CSDN 2007年11月26日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
整个源代码如上。

  首先:重载 pictureBox1_Paint 函数

  进行画图时思想很简单,确定起始位置,结束位置,本程序中我用System.Drawing.PointF对象存储点坐标。

  使用 e.Graphics.DrawLine(Pens.Black, 坐标1, 坐标2)进行线条的绘制。

  下面我将拿绘制正态分布图形介绍下:

  程序段如下:

以下是引用片段:
  for (d = a; d <= 2 * a; d += interval)
  {
  x1 = o.X + d * unit;
  x2 = o.X + (d + interval) * unit;
  y1 = o.Y - (float)(System.Math.Exp(-((d - a) / k) * ((d - a) / k)) * unit);
  y2 = o.Y - (float)(1-System.Math.Exp(-((d - interval - a) / k) * ((d - interval - a) / k)) * unit);
  p1 = new PointF(x1, y1);
  p2 = new PointF(x2, y2);
  e.Graphics.DrawLine(Pens.Blue, p1, p2);
  }

  其中:unit代表图形放大倍数,数值越大图形放大倍数越大。

  interval 代表步进刻度,值越小越精确(必须大小0),但速度也越慢

  先确定起始坐标(x1,y1),再结合正态分布在增加一个步进刻度的情况下确定(x2,y2),接下来调用e.Graphics.DrawLine进行画图。

  最后还有一点,由于每次重新画图的时候都要调用private void pictureBox1_Paint(object sender, PaintEventArgs e),其不是用户定义方法,所以用户句柄重新获取PictureBox_Paint方法,重新绘制图形,代码段如下:

以下是引用片段:
  Graphics g = Graphics.FromHwnd(this.pictureBox1.Handle);
  PaintEventArgs e1 = new PaintEventArgs(g, this.pictureBox1.ClientRectangle);
  this.pictureBox1_Paint(this.pictureBox1, e1);
  g.Dispose();

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    闂傚倷绶¢崣搴ㄥ窗閺囩偐鏋庨柕蹇嬪灪婵ジ鏌曡箛瀣偓鏍綖閿燂拷

    濠电姷顣介埀顒€鍟块埀顒€缍婇幃妯诲緞閹邦剛鐣洪梺闈浥堥弲婊勬叏濠婂牊鍋ㄦい鏍ㄧ〒閹藉啴鏌熼悜鈺傛珚鐎规洘宀稿畷鍫曞煛閸屾粍娈搁梻浣筋嚃閸ㄤ即宕㈤弽顐ュС闁挎稑瀚崰鍡樸亜閵堝懎濮┑鈽嗗亝濠㈡ê螞濡ゅ懏鍋傛繛鍡樻尭鐎氬鏌嶈閸撶喎顕i渚婄矗濞撴埃鍋撻柣娑欐崌閺屾稑鈹戦崨顕呮▊缂備焦顨呴惌鍌炵嵁鎼淬劌鐒垫い鎺戝鐎氬銇勯弽銊ф噥缂佽妫濋弻鐔碱敇瑜嶉悘鑼磼鏉堛劎绠為柡灞芥喘閺佹劙宕熼鐘虫緰闂佽崵濮抽梽宥夊垂閽樺)锝夊礋椤栨稑娈滈梺纭呮硾椤洟鍩€椤掆偓閿曪妇妲愰弮鍫濈闁绘劕寮Δ鍛厸闁割偒鍋勯悘锕傛煕鐎n偆澧紒鍌涘笧閹瑰嫰鎼圭憴鍕靛晥闂備礁鎼€氱兘宕归柆宥呯;鐎广儱顦伴崕宥夋煕閺囥劌澧ù鐘趁湁闁挎繂妫楅埢鏇㈡煃瑜滈崜姘跺蓟閵娧勵偨闁绘劕顕埢鏇㈡倵閿濆倹娅囨い蹇涗憾閺屾洟宕遍鐔奉伓

    重磅专题
    往期文章
    最新文章